package ar.com.jsejtman.cajugastos2.example.dao;

import ar.com.jsejtman.cajugastos2.example.model.Feriados;
import ar.com.jsejtman.common.persistence.dao.GenericDao;
import ar.com.jsejtman.common.persistence.exception.DaoException;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;

/**
 * DAO correspondiente a la entidad de datos Accidente. Permite realizar operaciones generales de
 * lectura y escritura, así como operaciones específicas de esta entidad de datos.
 * 
 * @author jsejtman
 */
public class FeriadosDao extends GenericDao<Feriados, Integer> {

	/**
	 * Feriados.
	 * 
	 * @param feriadoId bla.
	 * @return bla.
	 * @throws DaoException bla.
	 */
	public final Feriados getFeriadoById(final Long feriadoId) throws DaoException {

		if (feriadoId == null) {
			throw new IllegalArgumentException("El parámetro feriadoId es requerido.");
		}

		try {
			final Criteria criteria =
			        this.getSession().createCriteria(
			                "FROM Feriados fer WHERE fer.id = " + feriadoId);

			return ((Feriados) criteria.uniqueResult());
			// final Query query = this.getSession().createQuery(hql);
			//
			// query.setLong("feriadoId", feriadoId);
			//
			// return ((Feriados) query.list().get(0));

		} catch (final HibernateException e) {
			throw new DaoException(e);
		}
	}
}
